<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<title>Language</title>
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
		<meta name="viewport" content="width=device-width initial-scale=1">
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<meta http-equiv="Content-Language" content="en-gb">

<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
		
	</head>
	<body class="commentary-font">
		<nav role="navigation">
		<h1><a href="../index.html"><img src="../docs-assets/Inform.png" height=72> </a></h1>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
<li><a href="../inform7n.html">inform7</a></li>
<li><a href="../intern.html">inter</a></li>
<li><a href="../services.html">services</a></li>
<li><a href="../secrets.html">secrets</a></li>
</ul><h2>Other Tools</h2><ul>
<li><a href="../inblorbn.html">inblorb</a></li>
<li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li>
</ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=0> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="https://github.com/ganelson/inweb"><img src="../docs-assets/github.png" height=0> inweb</a></li>
<li><a href="https://github.com/ganelson/intest"><img src="../docs-assets/github.png" height=0> intest</a></li>
</ul>
		</nav>
		<main role="main">
		<!-- Weave of 'Language' generated by inweb -->
<div class="breadcrumbs">
    <ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><b>EnglishLanguageKit</b></li></ul></div>
<p class="purpose">Language  The fundamental definitions needed by the parser and the verb library in order to specify the language of play -- that is, the language used for communications between the story file and the player.</p>

<ul class="toc"><li><a href="lngg.html#SP1">&#167;1. Initialisation</a></li><li><a href="lngg.html#SP2">&#167;2. Identification</a></li><li><a href="lngg.html#SP3">&#167;3. Vocabulary</a></li><li><a href="lngg.html#SP4">&#167;4. Pronouns</a></li><li><a href="lngg.html#SP5">&#167;5. Descriptors</a></li><li><a href="lngg.html#SP6">&#167;6. Numbers</a></li><li><a href="lngg.html#SP7">&#167;7. Time</a></li><li><a href="lngg.html#SP8">&#167;8. Directions</a></li><li><a href="lngg.html#SP9">&#167;9. Translation</a></li><li><a href="lngg.html#SP10">&#167;10. Articles</a></li><li><a href="lngg.html#SP11">&#167;11. Commands</a></li><li><a href="lngg.html#SP12">&#167;12. Stubs</a></li></ul><hr class="tocbar">

<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Initialisation.</b>It used to be optional whether or not to include a function of this name in
a language kit: it's now compulsory, even when (as now) it does nothing.
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">LanguageInitialise</span><span class="plain-syntax">; ];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. Identification.</b></p>

<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ENGLISHLANGUAGEKIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. Vocabulary.</b></p>

<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">AGAIN1__WD</span><span class="plain-syntax">     = </span><span class="character-syntax">'again'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">AGAIN2__WD</span><span class="plain-syntax">     = </span><span class="character-syntax">'g//'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">AGAIN3__WD</span><span class="plain-syntax">     = </span><span class="character-syntax">'again'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">OOPS1__WD</span><span class="plain-syntax">      = </span><span class="character-syntax">'oops'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">OOPS2__WD</span><span class="plain-syntax">      = </span><span class="character-syntax">'o//'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">OOPS3__WD</span><span class="plain-syntax">      = </span><span class="character-syntax">'oops'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">UNDO1__WD</span><span class="plain-syntax">      = </span><span class="character-syntax">'undo'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">UNDO2__WD</span><span class="plain-syntax">      = </span><span class="character-syntax">'undo'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">UNDO3__WD</span><span class="plain-syntax">      = </span><span class="character-syntax">'undo'</span><span class="plain-syntax">;</span>

<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ALL1__WD</span><span class="plain-syntax">       = </span><span class="character-syntax">'all'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ALL2__WD</span><span class="plain-syntax">       = </span><span class="character-syntax">'each'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ALL3__WD</span><span class="plain-syntax">       = </span><span class="character-syntax">'every'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ALL4__WD</span><span class="plain-syntax">       = </span><span class="character-syntax">'everything'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ALL5__WD</span><span class="plain-syntax">       = </span><span class="character-syntax">'both'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">AND1__WD</span><span class="plain-syntax">       = </span><span class="character-syntax">'and'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">AND2__WD</span><span class="plain-syntax">       = </span><span class="character-syntax">'and'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">AND3__WD</span><span class="plain-syntax">       = </span><span class="character-syntax">'and'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">BUT1__WD</span><span class="plain-syntax">       = </span><span class="character-syntax">'but'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">BUT2__WD</span><span class="plain-syntax">       = </span><span class="character-syntax">'except'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">BUT3__WD</span><span class="plain-syntax">       = </span><span class="character-syntax">'but'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">BY__WD</span><span class="plain-syntax">         = </span><span class="character-syntax">'by'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ME1__WD</span><span class="plain-syntax">        = </span><span class="character-syntax">'me'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ME2__WD</span><span class="plain-syntax">        = </span><span class="character-syntax">'myself'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ME3__WD</span><span class="plain-syntax">        = </span><span class="character-syntax">'self'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">OF1__WD</span><span class="plain-syntax">        = </span><span class="character-syntax">'of'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">OF2__WD</span><span class="plain-syntax">        = </span><span class="character-syntax">'of'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">OF3__WD</span><span class="plain-syntax">        = </span><span class="character-syntax">'of'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">OF4__WD</span><span class="plain-syntax">        = </span><span class="character-syntax">'of'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">OTHER1__WD</span><span class="plain-syntax">     = </span><span class="character-syntax">'another'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">OTHER2__WD</span><span class="plain-syntax">     = </span><span class="character-syntax">'other'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">OTHER3__WD</span><span class="plain-syntax">     = </span><span class="character-syntax">'other'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">THEN1__WD</span><span class="plain-syntax">      = </span><span class="character-syntax">'then'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">THEN2__WD</span><span class="plain-syntax">      = </span><span class="character-syntax">'then'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">THEN3__WD</span><span class="plain-syntax">      = </span><span class="character-syntax">'then'</span><span class="plain-syntax">;</span>

<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NO1__WD</span><span class="plain-syntax">        = </span><span class="character-syntax">'n//'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NO2__WD</span><span class="plain-syntax">        = </span><span class="character-syntax">'no'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NO3__WD</span><span class="plain-syntax">        = </span><span class="character-syntax">'no'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">YES1__WD</span><span class="plain-syntax">       = </span><span class="character-syntax">'y//'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">YES2__WD</span><span class="plain-syntax">       = </span><span class="character-syntax">'yes'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">YES3__WD</span><span class="plain-syntax">       = </span><span class="character-syntax">'yes'</span><span class="plain-syntax">;</span>

<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">AMUSING__WD</span><span class="plain-syntax">    = </span><span class="character-syntax">'amusing'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">FULLSCORE1__WD</span><span class="plain-syntax"> = </span><span class="character-syntax">'fullscore'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">FULLSCORE2__WD</span><span class="plain-syntax"> = </span><span class="character-syntax">'full'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">QUIT1__WD</span><span class="plain-syntax">      = </span><span class="character-syntax">'q//'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">QUIT2__WD</span><span class="plain-syntax">      = </span><span class="character-syntax">'quit'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RESTART__WD</span><span class="plain-syntax">    = </span><span class="character-syntax">'restart'</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RESTORE__WD</span><span class="plain-syntax">    = </span><span class="character-syntax">'restore'</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Pronouns.</b></p>

<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">LanguagePronouns</span><span class="plain-syntax"> </span><span class="identifier-syntax">table</span>

<span class="plain-syntax">  </span><span class="comment-syntax">word        possible GNAs                   connected</span>
<span class="plain-syntax">  </span><span class="comment-syntax">            to follow:                      to:</span>
<span class="plain-syntax">  </span><span class="comment-syntax">            a     i</span>
<span class="plain-syntax">  </span><span class="comment-syntax">            s  p  s  p</span>
<span class="plain-syntax">  </span><span class="comment-syntax">            mfnmfnmfnmfn</span>

<span class="plain-syntax">    </span><span class="character-syntax">'it'</span><span class="plain-syntax">      </span><span class="constant-syntax">$$001000111000</span><span class="plain-syntax">                    </span><span class="identifier-syntax">NULL</span>
<span class="plain-syntax">    </span><span class="character-syntax">'him'</span><span class="plain-syntax">     </span><span class="constant-syntax">$$100000000000</span><span class="plain-syntax">                    </span><span class="identifier-syntax">NULL</span>
<span class="plain-syntax">    </span><span class="character-syntax">'her'</span><span class="plain-syntax">     </span><span class="constant-syntax">$$010000000000</span><span class="plain-syntax">                    </span><span class="identifier-syntax">NULL</span>
<span class="plain-syntax">    </span><span class="character-syntax">'them'</span><span class="plain-syntax">    </span><span class="constant-syntax">$$000111000111</span><span class="plain-syntax">                    </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. Descriptors.</b></p>

<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">LanguageDescriptors</span><span class="plain-syntax"> </span><span class="identifier-syntax">table</span>

<span class="plain-syntax">  </span><span class="comment-syntax">word        possible GNAs   descriptor      connected</span>
<span class="plain-syntax">  </span><span class="comment-syntax">            to follow:      type:           to:</span>
<span class="plain-syntax">  </span><span class="comment-syntax">            a     i</span>
<span class="plain-syntax">  </span><span class="comment-syntax">            s  p  s  p</span>
<span class="plain-syntax">  </span><span class="comment-syntax">            mfnmfnmfnmfn</span>

<span class="plain-syntax">    </span><span class="character-syntax">'my'</span><span class="plain-syntax">      </span><span class="constant-syntax">$$111111111111</span><span class="plain-syntax">    </span><span class="identifier-syntax">POSSESS_PK</span><span class="plain-syntax">      </span><span class="constant-syntax">0</span>
<span class="plain-syntax">    </span><span class="character-syntax">'this'</span><span class="plain-syntax">    </span><span class="constant-syntax">$$111111111111</span><span class="plain-syntax">    </span><span class="identifier-syntax">POSSESS_PK</span><span class="plain-syntax">      </span><span class="constant-syntax">0</span>
<span class="plain-syntax">    </span><span class="character-syntax">'these'</span><span class="plain-syntax">   </span><span class="constant-syntax">$$000111000111</span><span class="plain-syntax">    </span><span class="identifier-syntax">POSSESS_PK</span><span class="plain-syntax">      </span><span class="constant-syntax">0</span>
<span class="plain-syntax">    </span><span class="character-syntax">'that'</span><span class="plain-syntax">    </span><span class="constant-syntax">$$111111111111</span><span class="plain-syntax">    </span><span class="identifier-syntax">POSSESS_PK</span><span class="plain-syntax">      </span><span class="constant-syntax">1</span>
<span class="plain-syntax">    </span><span class="character-syntax">'those'</span><span class="plain-syntax">   </span><span class="constant-syntax">$$000111000111</span><span class="plain-syntax">    </span><span class="identifier-syntax">POSSESS_PK</span><span class="plain-syntax">      </span><span class="constant-syntax">1</span>
<span class="plain-syntax">    </span><span class="character-syntax">'his'</span><span class="plain-syntax">     </span><span class="constant-syntax">$$111111111111</span><span class="plain-syntax">    </span><span class="identifier-syntax">POSSESS_PK</span><span class="plain-syntax">      </span><span class="character-syntax">'him'</span>
<span class="plain-syntax">    </span><span class="character-syntax">'her'</span><span class="plain-syntax">     </span><span class="constant-syntax">$$111111111111</span><span class="plain-syntax">    </span><span class="identifier-syntax">POSSESS_PK</span><span class="plain-syntax">      </span><span class="character-syntax">'her'</span>
<span class="plain-syntax">    </span><span class="character-syntax">'their'</span><span class="plain-syntax">   </span><span class="constant-syntax">$$111111111111</span><span class="plain-syntax">    </span><span class="identifier-syntax">POSSESS_PK</span><span class="plain-syntax">      </span><span class="character-syntax">'them'</span>
<span class="plain-syntax">    </span><span class="character-syntax">'its'</span><span class="plain-syntax">     </span><span class="constant-syntax">$$111111111111</span><span class="plain-syntax">    </span><span class="identifier-syntax">POSSESS_PK</span><span class="plain-syntax">      </span><span class="character-syntax">'it'</span>
<span class="plain-syntax">    </span><span class="character-syntax">'the'</span><span class="plain-syntax">     </span><span class="constant-syntax">$$111111111111</span><span class="plain-syntax">    </span><span class="identifier-syntax">DEFART_PK</span><span class="plain-syntax">       </span><span class="identifier-syntax">NULL</span>
<span class="plain-syntax">    </span><span class="character-syntax">'a//'</span><span class="plain-syntax">     </span><span class="constant-syntax">$$111000111000</span><span class="plain-syntax">    </span><span class="identifier-syntax">INDEFART_PK</span><span class="plain-syntax">     </span><span class="identifier-syntax">NULL</span>
<span class="plain-syntax">    </span><span class="character-syntax">'an'</span><span class="plain-syntax">      </span><span class="constant-syntax">$$111000111000</span><span class="plain-syntax">    </span><span class="identifier-syntax">INDEFART_PK</span><span class="plain-syntax">     </span><span class="identifier-syntax">NULL</span>
<span class="plain-syntax">    </span><span class="character-syntax">'some'</span><span class="plain-syntax">    </span><span class="constant-syntax">$$000111000111</span><span class="plain-syntax">    </span><span class="identifier-syntax">INDEFART_PK</span><span class="plain-syntax">     </span><span class="identifier-syntax">NULL</span>
<span class="plain-syntax">    </span><span class="character-syntax">'lit'</span><span class="plain-syntax">     </span><span class="constant-syntax">$$111111111111</span><span class="plain-syntax">    </span><span class="identifier-syntax">LIGHTED_PK</span><span class="plain-syntax">      </span><span class="identifier-syntax">NULL</span>
<span class="plain-syntax">    </span><span class="character-syntax">'lighted'</span><span class="plain-syntax"> </span><span class="constant-syntax">$$111111111111</span><span class="plain-syntax">    </span><span class="identifier-syntax">LIGHTED_PK</span><span class="plain-syntax">      </span><span class="identifier-syntax">NULL</span>
<span class="plain-syntax">    </span><span class="character-syntax">'unlit'</span><span class="plain-syntax">   </span><span class="constant-syntax">$$111111111111</span><span class="plain-syntax">    </span><span class="identifier-syntax">UNLIGHTED_PK</span><span class="plain-syntax">    </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. Numbers.</b></p>

<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">LanguageNumbers</span><span class="plain-syntax"> </span><span class="identifier-syntax">table</span>
<span class="plain-syntax">    </span><span class="character-syntax">'one'</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax"> </span><span class="character-syntax">'two'</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax"> </span><span class="character-syntax">'three'</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span><span class="plain-syntax"> </span><span class="character-syntax">'four'</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span><span class="plain-syntax"> </span><span class="character-syntax">'five'</span><span class="plain-syntax"> </span><span class="constant-syntax">5</span>
<span class="plain-syntax">    </span><span class="character-syntax">'six'</span><span class="plain-syntax"> </span><span class="constant-syntax">6</span><span class="plain-syntax"> </span><span class="character-syntax">'seven'</span><span class="plain-syntax"> </span><span class="constant-syntax">7</span><span class="plain-syntax"> </span><span class="character-syntax">'eight'</span><span class="plain-syntax"> </span><span class="constant-syntax">8</span><span class="plain-syntax"> </span><span class="character-syntax">'nine'</span><span class="plain-syntax"> </span><span class="constant-syntax">9</span><span class="plain-syntax"> </span><span class="character-syntax">'ten'</span><span class="plain-syntax"> </span><span class="constant-syntax">10</span>
<span class="plain-syntax">    </span><span class="character-syntax">'eleven'</span><span class="plain-syntax"> </span><span class="constant-syntax">11</span><span class="plain-syntax"> </span><span class="character-syntax">'twelve'</span><span class="plain-syntax"> </span><span class="constant-syntax">12</span><span class="plain-syntax"> </span><span class="character-syntax">'thirteen'</span><span class="plain-syntax"> </span><span class="constant-syntax">13</span><span class="plain-syntax"> </span><span class="character-syntax">'fourteen'</span><span class="plain-syntax"> </span><span class="constant-syntax">14</span><span class="plain-syntax"> </span><span class="character-syntax">'fifteen'</span><span class="plain-syntax"> </span><span class="constant-syntax">15</span>
<span class="plain-syntax">    </span><span class="character-syntax">'sixteen'</span><span class="plain-syntax"> </span><span class="constant-syntax">16</span><span class="plain-syntax"> </span><span class="character-syntax">'seventeen'</span><span class="plain-syntax"> </span><span class="constant-syntax">17</span><span class="plain-syntax"> </span><span class="character-syntax">'eighteen'</span><span class="plain-syntax"> </span><span class="constant-syntax">18</span><span class="plain-syntax"> </span><span class="character-syntax">'nineteen'</span><span class="plain-syntax"> </span><span class="constant-syntax">19</span><span class="plain-syntax"> </span><span class="character-syntax">'twenty'</span><span class="plain-syntax"> </span><span class="constant-syntax">20</span>
<span class="plain-syntax">    </span><span class="character-syntax">'twenty-one'</span><span class="plain-syntax"> </span><span class="constant-syntax">21</span><span class="plain-syntax"> </span><span class="character-syntax">'twenty-two'</span><span class="plain-syntax"> </span><span class="constant-syntax">22</span><span class="plain-syntax"> </span><span class="character-syntax">'twenty-three'</span><span class="plain-syntax"> </span><span class="constant-syntax">23</span><span class="plain-syntax"> </span><span class="character-syntax">'twenty-four'</span><span class="plain-syntax"> </span><span class="constant-syntax">24</span>
<span class="plain-syntax">    </span><span class="character-syntax">'twenty-five'</span><span class="plain-syntax"> </span><span class="constant-syntax">25</span><span class="plain-syntax"> </span><span class="character-syntax">'twenty-six'</span><span class="plain-syntax"> </span><span class="constant-syntax">26</span><span class="plain-syntax"> </span><span class="character-syntax">'twenty-seven'</span><span class="plain-syntax"> </span><span class="constant-syntax">27</span><span class="plain-syntax"> </span><span class="character-syntax">'twenty-eight'</span><span class="plain-syntax"> </span><span class="constant-syntax">28</span>
<span class="plain-syntax">    </span><span class="character-syntax">'twenty-nine'</span><span class="plain-syntax"> </span><span class="constant-syntax">29</span><span class="plain-syntax"> </span><span class="character-syntax">'thirty'</span><span class="plain-syntax"> </span><span class="constant-syntax">30</span>
<span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. Time.</b></p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">LanguageTimeOfDay</span><span class="plain-syntax"> </span><span class="identifier-syntax">hours</span><span class="plain-syntax"> </span><span class="identifier-syntax">mins</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hours</span><span class="plain-syntax">%12;</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="constant-syntax">12</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">10</span><span class="plain-syntax">) </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">" "</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="string-syntax">":"</span><span class="plain-syntax">, </span><span class="identifier-syntax">mins</span><span class="plain-syntax">/10, </span><span class="identifier-syntax">mins</span><span class="plain-syntax">%10;</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">hours</span><span class="plain-syntax">/12) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">" pm"</span><span class="plain-syntax">; </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">" am"</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. Directions.</b></p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">LanguageDirection</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">print</span><span class="plain-syntax"> (</span><span class="identifier-syntax">name</span><span class="plain-syntax">) </span><span class="identifier-syntax">d</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. Translation.</b>These are all opportunities to meddle with the normal (Anglo-centric) running
of things, which we will decline.
</p>

<p class="commentary">Until April 2023, it was optional for a kit to provide <span class="extract"><span class="extract-syntax">LanguageRefers</span></span> and
<span class="extract"><span class="extract-syntax">LanguagePrintShortName</span></span>, but this is now compulsory.
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">LanguageToInformese</span><span class="plain-syntax">; ];</span>

<span class="plain-syntax">[ </span><span class="identifier-syntax">LanguageRefers</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax"> </span><span class="identifier-syntax">y</span><span class="plain-syntax">; </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1; ];</span>

<span class="plain-syntax">[ </span><span class="identifier-syntax">LanguagePrintShortName</span><span class="plain-syntax"> </span><span class="identifier-syntax">obj</span><span class="plain-syntax">; </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">; ];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Articles.</b></p>

<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">LanguageAnimateGender</span><span class="plain-syntax">   = </span><span class="identifier-syntax">male</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">LanguageInanimateGender</span><span class="plain-syntax"> = </span><span class="identifier-syntax">neuter</span><span class="plain-syntax">;</span>

<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">LanguageContractionForms</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">;     </span><span class="comment-syntax">English has two:</span>
<span class="plain-syntax">                                           </span><span class="comment-syntax">0 = starting with a consonant</span>
<span class="plain-syntax">                                           </span><span class="comment-syntax">1 = starting with a vowel</span>

<span class="plain-syntax">[ </span><span class="identifier-syntax">LanguageContraction</span><span class="plain-syntax"> </span><span class="identifier-syntax">text</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">ch</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    #</span><span class="identifier-syntax">Iftrue</span><span class="plain-syntax"> </span><span class="identifier-syntax">CHARSIZE</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">ch</span><span class="plain-syntax"> = </span><span class="identifier-syntax">text</span><span class="plain-syntax">-&gt;0;</span>
<span class="plain-syntax">    #</span><span class="identifier-syntax">Ifnot</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">ch</span><span class="plain-syntax"> = </span><span class="identifier-syntax">text</span><span class="plain-syntax">--&gt;0;</span>
<span class="plain-syntax">    #</span><span class="identifier-syntax">Endif</span><span class="plain-syntax">; </span><span class="comment-syntax">CHARSIZE</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ch</span><span class="plain-syntax"> == </span><span class="character-syntax">'a'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'e'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'i'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'o'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'u'</span>
<span class="plain-syntax">           </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'A'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'E'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'I'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'O'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'U'</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>

<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">LanguageArticles</span><span class="plain-syntax"> --&gt;</span>

<span class="plain-syntax"> </span><span class="comment-syntax">  Contraction form 0:     Contraction form 1:</span>
<span class="plain-syntax"> </span><span class="comment-syntax">  Cdef   Def    Indef     Cdef   Def    Indef</span>

<span class="plain-syntax">     </span><span class="string-syntax">"The "</span><span class="plain-syntax"> </span><span class="string-syntax">"the "</span><span class="plain-syntax"> </span><span class="string-syntax">"a "</span><span class="plain-syntax">      </span><span class="string-syntax">"The "</span><span class="plain-syntax"> </span><span class="string-syntax">"the "</span><span class="plain-syntax"> </span><span class="string-syntax">"an "</span><span class="plain-syntax">          </span><span class="comment-syntax">Articles 0</span>
<span class="plain-syntax">     </span><span class="string-syntax">"The "</span><span class="plain-syntax"> </span><span class="string-syntax">"the "</span><span class="plain-syntax"> </span><span class="string-syntax">"some "</span><span class="plain-syntax">   </span><span class="string-syntax">"The "</span><span class="plain-syntax"> </span><span class="string-syntax">"the "</span><span class="plain-syntax"> </span><span class="string-syntax">"some "</span><span class="plain-syntax">;       </span><span class="comment-syntax">Articles 1</span>

<span class="plain-syntax">                   </span><span class="comment-syntax">            a           i</span>
<span class="plain-syntax">                   </span><span class="comment-syntax">            s     p     s     p</span>
<span class="plain-syntax">                   </span><span class="comment-syntax">            m f n m f n m f n m f n</span>

<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">LanguageGNAsToArticles</span><span class="plain-syntax"> --&gt; </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. Commands.</b><span class="extract"><span class="extract-syntax">LanguageVerbLikesAdverb</span></span> is called by <span class="extract"><span class="extract-syntax">PrintCommand</span></span> when printing an <span class="extract"><span class="extract-syntax">UPTO_PE</span></span>
error or an inference message.  Words which are intransitive verbs, i.e.,
which require a direction name as an adverb ("walk west"), not a noun
("I only understood you as far as wanting to touch the ground"), should
cause the routine to return <span class="extract"><span class="extract-syntax">true</span></span>.
</p>

<p class="commentary"><span class="extract"><span class="extract-syntax">LanguageVerbMayBeName</span></span> is called by <span class="extract"><span class="extract-syntax">NounDomain</span></span> when dealing with
the player's reply to a "Which do you mean, the short stick or the
long stick?" prompt from the parser. If the reply is another verb
(for example, LOOK) then then previous ambiguous command is discarded
unless it is one of these words which could be both a verb and an
adjective in a <span class="extract"><span class="extract-syntax">name</span></span> property.
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">LanguageVerb</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">      </span><span class="character-syntax">'i//'</span><span class="plain-syntax">,</span><span class="character-syntax">'inv'</span><span class="plain-syntax">,</span><span class="character-syntax">'inventory'</span><span class="plain-syntax">:</span>
<span class="plain-syntax">               </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"take inventory"</span><span class="plain-syntax">;</span>
<span class="plain-syntax">      </span><span class="character-syntax">'l//'</span><span class="plain-syntax">:   </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"look"</span><span class="plain-syntax">;</span>
<span class="plain-syntax">      </span><span class="character-syntax">'x//'</span><span class="plain-syntax">:   </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"examine"</span><span class="plain-syntax">;</span>
<span class="plain-syntax">      </span><span class="character-syntax">'z//'</span><span class="plain-syntax">:   </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"wait"</span><span class="plain-syntax">;</span>
<span class="plain-syntax">      </span><span class="reserved-syntax">default</span><span class="plain-syntax">: </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    }</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>

<span class="plain-syntax">[ </span><span class="identifier-syntax">LanguageVerbLikesAdverb</span><span class="plain-syntax"> </span><span class="identifier-syntax">w</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">w</span><span class="plain-syntax"> == </span><span class="character-syntax">'look'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'go'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'push'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'walk'</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>

<span class="plain-syntax">[ </span><span class="identifier-syntax">LanguageVerbMayBeName</span><span class="plain-syntax"> </span><span class="identifier-syntax">w</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">w</span><span class="plain-syntax"> == </span><span class="character-syntax">'long'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'short'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'normal'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'brief'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'full'</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="character-syntax">'verbose'</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. Stubs.</b>To reduce the need for conditional compilation, we provide these stub
routines:
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">LanguageIsVerb</span><span class="plain-syntax"> </span><span class="identifier-syntax">buffer</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse</span><span class="plain-syntax"> </span><span class="identifier-syntax">verb_wordnum</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
<!-- End of weave -->

		</main>
	</body>
</html>

